module.exports = {
  root: true,
  env: { browser: true, es2020: true },
  extends: [
    'eslint:recommended',
    'plugin:@typescript-eslint/recommended',
    'plugin:react-hooks/recommended',
  ],
  ignorePatterns: ['dist', '.eslintrc.cjs'],
  parser: '@typescript-eslint/parser',
  plugins: ['react-refresh', 'import'],
  rules: {
    'react-refresh/only-export-components': [
      'warn',
      { allowConstantExport: true },
    ],
    "import/order": [
      "error",
      {
        "groups": [
          "builtin",
          "external",
          "internal",
          "parent",
          "sibling",
          "index",
          "type",
        ],
        "newlines-between": "always",
        "alphabetize": {
          "order": "asc",
          "caseInsensitive": true
        }
      }
    ],
    "indent": ["error", 4], // Отступы в 4 пробела
    "linebreak-style": ["error", "unix"], // Unix стиль переноса строк
    "quotes": ["error", "single"], // Одинарные кавычки
    "semi": ["error", "always"], // Всегда использовать точку с запятой
    "comma-dangle": ["error", "always-multiline"], // Запятая в последней строке многострочного литерала
    "no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 1 }], // Максимум одна пустая строка
    "space-before-function-paren": ["error", "always"], // Пробел перед круглой скобкой функции
    "object-curly-spacing": ["error", "always"], // Пробелы внутри фигурных скобок
    "key-spacing": ["error", { "beforeColon": false, "afterColon": true }], // Пробелы вокруг двоеточия в объектах
    "keyword-spacing": ["error", { "before": true, "after": true }], // Пробелы вокруг ключевых слов
    '@typescript-eslint/consistent-type-imports': 'error',
  },
}
